PK files
PK (packed pixel) files store the character images needed to print or view
a DVI file containing bitmap fonts; these are all the fonts not listed
in your configuration file (or psfonts.map in the case of dvips).
Each bitmap font usually has a number of PK files,
each one representing the same font but at a different size.
This size is calculated as follows:
size = resolution ×magnification
where resolution is either the printing resolution or the
viewing resolution, and magnification is the overall font magnification
(i.e., the DVI magnification times the individual font scaling).
The size is then rounded up to the nearest integer and should
equal (±1) one of the subfolder names in PK-files if you decide to keep
PK files of the same size in separate folders.
Although TEX allows you to request a font at virtually any magnification,
it is obviously impossible to provide an infinite number of PK files.
The compromise solution is to provide a range of sizes for each font.
These sizes are in a geometric ratio based on powers of 1.2 and correspond to
TEX's \magstep
values.
See Chapters 4 and 10 of The TEXbook for more details.
For example, assuming a resolution of 300 and no document magnification:
TEX input size PK file
\font\ra=cmr10
300×1.20 cmr10.300pk
\font\rb=cmr10 scaled\magstephalf
300×1.20.5 cmr10.329pk
\font\rc=cmr10 scaled\magstep1
300×1.21 cmr10.360pk
\font\rd=cmr10 scaled\magstep2
300×1.22 cmr10.432pk
\font\re=cmr10 scaled\magstep3
300×1.23 cmr10.518pk
\font\rf=cmr10 scaled\magstep4
300×1.24 cmr10.622pk
\font\rg=cmr10 scaled\magstep5
300×1.25 cmr10.746pk
TEX's \magnification
command has a cumulative effect on font scaling:
\magnification=\magstep1 % document magnification = 1.2
\font\bigrm=cmr10 scaled\magstep2 % font magnification = 1.44
The font size is now
300×1.2×1.44 = 518.4,
so will use cmr10.518pk
.
Note that LATEX has no \magnification
command — use
the 11pt
and 12pt
options to increase the size
of all fonts in a LATEX document.
uses a very flexible search scheme when looking for fonts.
If foo
is a PostScript font then looks for foo.tfm
in the
current folder before looking in TeX-fonts.
If foo
is not a PostScript font then looks for a PK file
using the list of templates specified by the pk_files
parameter.
For example, if the calculated size is 300 then will look for:
1. foo.300pk
(in the current folder)
2. :PK-files:foo.300pk
(relative to the location of )
3. :PK-files:300:foo.300pk
(ditto)
In fact, at each step will also add and subtract 1 from 300
because rounding errors can occur in the size calculation.
If still not found, either gives up or calls to make the
missing PK file (see section
).
There is still another possibility to consider: a font name can include
an explicit location. For example, your TEX input file might contain
\font\xxx=:myfonts:foo
. In this case TEX will look for
:myfonts:foo.tfm
in the current folder;
that is, it expects to find a file called foo.tfm
in a subfolder called myfonts
.
If not found then it gives up; it does not look for foo.tfm
in TeX-fonts.
Similarly, when you print or view the DVI file, will only look for
:myfonts:foo.tfm
if foo
is a PostScript font,
or for :myfonts:foo.300pk
(or 301pk
or 299pk
)
if foo
is a PK font.
Note that the use of an explicit font location is not recommended as it
decreases the portability of your TEX input file.
Most of the PK files supplied with have been specifically generated
for a 300 dpi, write-black laser printer (like the Apple LaserWriter).
If your printer doesn't have the same characteristics then you can
build new PK files using as described in section
.
Note that the 300 dpi PK files supplied with can also be used
on a 360 dpi printer like the StyleWriter (because
360 = 300×1.2).
Two subfolders, 394
and 896
, complete the standard set of
magnifications for a 360 dpi printer:
394 is the nearest integer to
360×1.20.5 and
896 is the nearest integer to
360×1.25.